{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实验：线性回归实现房价预测\n",
    "\n",
    "### API\n",
    "\n",
    "sklearn.linear_model.LinearRegression()\n",
    "- 普通最小二乘线性回归\n",
    "- coef_：回归系数\n",
    "\n",
    "\n",
    "sklearn.linear_model.SGDRegressor( )\n",
    "- 通过使用SGD最小化线性模型\n",
    "- coef_：回归系数\n",
    "\n",
    "\n",
    "```python \n",
    "\n",
    "class LinearRegression(fit_intercept = True，normalize = False，copy_X = True，n_jobs = 1)\n",
    "  \"\"\"\n",
    "  :param normalize:如果设置为True时，数据进行标准化。请在使用normalize = False的估计器调时用fit之前使用preprocessing.StandardScaler\n",
    "\n",
    "  :param copy_X:boolean，可选，默认为True，如果为True，则X将被复制\n",
    "\n",
    "  :param n_jobs：int，可选，默认1。用于计算的CPU核数\n",
    "  \"\"\"\n",
    "\n",
    "\n",
    "```\n",
    "\n",
    "\n",
    "**波士顿房价数据案例分析流程**\n",
    "\n",
    "1、波士顿地区房价数据获取\n",
    "\n",
    "2、波士顿地区房价数据分割\n",
    "\n",
    "3、训练与测试数据标准化处理\n",
    "\n",
    "4、使用最简单的线性回归模型LinearRegression和\n",
    "梯度下降估计SGDRegressor对房价进行预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试集标签：\n",
      " [21.5 36.5 23.1 22.  28.4 28.7 27.   9.5 19.6  8.8 13.3 19.3  7.  24.1\n",
      " 36.4  7.2 26.4 17.1 24.5 23.1  9.6 24.8 19.6 30.7 13.4 20.3 20.  22.\n",
      " 21.2 17.8 22.  10.9 20.6 36.2 22.6 50.  38.7 22.9 22.5 26.6 23.1 16.4\n",
      " 29.8 24.8 14.6 10.4 19.4 22.6 29.9 18.4 24.7 24.5 35.2 19.1 50.  17.8\n",
      " 13.6 19.6 19.9 31.  21.8 22.8 20.1 26.2 13.8 12.7 43.8 48.3 23.9 23.4\n",
      " 17.7 13.8 31.5 20.1 15.3 29.8 12.1 15.6 24.  19.5 17.4 34.6 13.5 31.7\n",
      " 17.9 23.  10.8 30.3 11.9 33.4 32.  22.8 23.3 14.9 13.1 24.2 20.  18.\n",
      " 20.1 26.6 48.5 25.  20.2 15.  13.  20.3 50.  19.3 23.2 17.3  8.5 21.4\n",
      " 22.9 21.4 22.3 17.1 21.2 31.6 14.8 23.8 50.  12.7 28.  42.8 16.2 21.7\n",
      " 21.5]\n",
      "\n",
      " 回归系数: [[-0.11370052  0.13776271  0.02278422  0.07189721 -0.24159384  0.27780045\n",
      "   0.03182982 -0.3438609   0.32482604 -0.24803787 -0.23779177  0.11169797\n",
      "  -0.40503701]]\n",
      "\n",
      " 正规方程测试集里每个房子的预测价格：\n",
      " [25.46962135 36.27458269 16.54991218 29.31120055 28.44688571 28.74002869\n",
      " 32.73552636 12.26177731 18.2979347   2.39032349 16.31921176 20.87864061\n",
      " -6.12666565 20.50448241 32.89358611 17.61810544 23.2702717  17.13595606\n",
      " 20.30446065 10.34218539 13.16216694 25.95371247 19.25426135 31.72832724\n",
      " 12.40275459 20.11897489 23.14329806 27.69955198 21.31016346  9.95982431\n",
      " 27.48526626 11.59625333 22.13480591 27.74520662 23.75863731 24.84236378\n",
      " 35.6289374  25.13384499 29.42351755 27.72062366 23.58014833 18.66534\n",
      " 32.50575375 27.17908706  8.92019604 10.61592521 23.56606886 26.79620782\n",
      " 31.5697226  19.54343554 22.64239868 21.37351496 35.16884045 24.68051074\n",
      " 41.01043521 16.45945821 13.67317826 23.35613602 18.75669068 34.95665764\n",
      " 20.43574701 28.68778439 18.24694597 23.81418048 16.62932902 17.73048482\n",
      " 34.60246827 37.02145871 25.83748757 23.56791257 20.18564116 20.13812699\n",
      " 30.86194804 15.63041836 19.89161866 25.3618216  18.21580002 12.39702636\n",
      " 25.46662133 20.00479893 22.87061898 35.31060111 13.52379212 33.34428284\n",
      "  1.06697534 30.02638901 10.99432171 33.22140616  7.94599389 35.85070144\n",
      " 33.66832231 26.58046045 21.70599022 14.12676799 12.94296655 24.71258886\n",
      " 18.40418263 18.87299244 24.39409155 27.46661103 42.53581715 22.35423261\n",
      " 22.26961839 12.44327258 17.01774921 23.7147457  36.79114538 20.33799753\n",
      " 25.67257643 17.00625283 16.49701636 24.90048885 29.19127864 20.05161951\n",
      " 27.76246856 19.26605892 21.18513313 33.83464736 14.57898193 24.70157451\n",
      " 25.59064035 11.81578295 28.24972976 29.32153475 20.74658681 22.76256286\n",
      " 20.79460868]\n",
      "\n",
      " 正规方程线性回归模型的均方误差为： 31.393421085010182\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import load_boston  # 数据集\n",
    "from sklearn.linear_model import LinearRegression, SGDRegressor  # 回归\n",
    "from sklearn.model_selection import train_test_split  # 数据集分割\n",
    "from sklearn.preprocessing import StandardScaler  # 标准化\n",
    "from sklearn.metrics import mean_squared_error  # 均方误差\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "\n",
    "def mylinear():\n",
    "    \"\"\"线性回归预测房子价格\"\"\"\n",
    "    \n",
    "    # 1、波士顿地区房价数据获取\n",
    "    boston = load_boston()\n",
    "#     print(\"数据描述：\\n\",boston.DESCR)\n",
    "    \n",
    "    \n",
    "    # 2、房价数据分割：分割数据集到训练集和测试集 （顺序：训练集特征，测试集特征，训练集标签，测试集标签）\n",
    "    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.25)\n",
    "    print(\"测试集标签：\\n\",y_test)\n",
    "    \n",
    "    # 3、进行标准化处理\n",
    "    std_x = StandardScaler()\n",
    "    x_train = std_x.fit_transform(x_train)\n",
    "    x_test = std_x.transform(x_test)  \n",
    "    \n",
    "    # 目标值\n",
    "    std_y = StandardScaler()\n",
    "    y_train = std_y.fit_transform(y_train.reshape(-1, 1))  # 新版本sklearn，单特征或样本需reshape(-1, 1)\n",
    "    y_test = std_y.transform(y_test.reshape(-1, 1))\n",
    "    \n",
    "    # 4、预测\n",
    "    \n",
    "    # (方法1)最简单的线性回归预测结果\n",
    "    lr = LinearRegression()\n",
    "    lr.fit(x_train,y_train)\n",
    "    print(\"\\n 回归系数:\", lr.coef_)\n",
    "    \n",
    "    # 预测测试集的房子价格\n",
    "    y_predict = lr.predict(x_test)\n",
    "    y_predict = std_y.inverse_transform(y_predict)  # 转换回标准化之前的数值\n",
    "    y_predict = y_predict.reshape(-1)  # 转成一维\n",
    "    print(\"\\n 正规方程测试集里每个房子的预测价格：\\n\",y_predict)\n",
    "    \n",
    "    print(\"\\n 正规方程线性回归模型的均方误差为：\", mean_squared_error(std_y.inverse_transform(y_test),\n",
    "                                                  y_predict ))  \n",
    "    \n",
    "#      # (方法2)梯度下降方式预测结果\n",
    "#     sgd = SGDRegressor()\n",
    "#     sgd.fit(x_train,y_train.ravel())  # .ravel()用来转为1维数组\n",
    "#     print(\"\\n 回归系数:\", sgd.coef_)\n",
    "    \n",
    "#     # 预测测试集的房子价格\n",
    "#     y_sgd_predict = sgd.predict(x_test)\n",
    "#     y_sgd_predict = std_y.inverse_transform(y_sgd_predict)  # 转换回标准化之前的数值\n",
    "#     print(\"\\n 梯度下降测试集里每个房子的预测价格：\\n\",y_sgd_predict)\n",
    "    \n",
    "#     print(\"\\n 梯度下降线性回归模型的均方误差为：\", mean_squared_error(std_y.inverse_transform(y_test),\n",
    "#                                                   y_sgd_predict))\n",
    "    \n",
    "    \n",
    "    #绘图进行比较\n",
    "    plt.figure(figsize=(10,7))       #画布大小\n",
    "    num=100\n",
    "    x=np.arange(1,num+1)              #取100个点进行比较\n",
    "    y_test = std_y.inverse_transform(y_test)\n",
    "    plt.plot(x,y_test[:num],label='target')      #目标取值\n",
    "    plt.plot(x,y_predict[:num],label='preds')        #预测取值\n",
    "    plt.legend(loc='upper right')  #线条显示位置\n",
    "    plt.show()\n",
    "    \n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    mylinear()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 逻辑回归\n",
    "\n",
    "```python\n",
    "class sklearn.linear_model.LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='liblinear', max_iter=100, multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)\n",
    "  \"\"\"\n",
    "  :param C: float，默认值：1.0\n",
    "\n",
    "  :param penalty: 特征选择的方式\n",
    "\n",
    "  :param tol: 公差停止标准\n",
    "  \"\"\"\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试集标签： [1. 1. 0. 0. 0. 1. 1. 0. 0.]\n",
      "预测的结果： [1. 0. 0. 1. 0. 1. 1. 1. 0.]\n",
      "混淆矩阵:\n",
      " [[3 2]\n",
      " [1 3]]\n",
      "预测结果相关度量查准率（准确率）、查全率（召回率），F1值：\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "         0.0       0.75      0.60      0.67         5\n",
      "         1.0       0.60      0.75      0.67         4\n",
      "\n",
      "    accuracy                           0.67         9\n",
      "   macro avg       0.68      0.68      0.67         9\n",
      "weighted avg       0.68      0.67      0.67         9\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from sklearn import metrics\n",
    "\n",
    "# load the CSV file as a numpy matrix\n",
    "dataset = np.loadtxt('./datasets/watermelon.csv', delimiter=\",\")\n",
    "# print(\"数据集:\\n\",dataset)\n",
    "\n",
    "# separate the data from the target attributes\n",
    "X = dataset[:,1:3]\n",
    "y = dataset[:,3]\n",
    "\n",
    "''' \n",
    "using sklearn lib for logistic regression\n",
    "'''\n",
    "from sklearn import model_selection\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.5, random_state=0)\n",
    "\n",
    "print(\"测试集标签：\",y_test)\n",
    "\n",
    "# model training\n",
    "log_model = LogisticRegression() \n",
    "log_model.fit(X_train, y_train) \n",
    "\n",
    "# model testing\n",
    "y_pred = log_model.predict(X_test)\n",
    "print(\"预测的结果：\",y_pred)\n",
    "\n",
    "# summarize the accuracy of fitting\n",
    "print(\"混淆矩阵:\\n\",metrics.confusion_matrix(y_test, y_pred))\n",
    "print(\"预测结果相关度量查准率（准确率）、查全率（召回率），F1值：\\n\",metrics.classification_report(y_test, y_pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 使用SVM实现鸢尾花分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "linear线性核函数-训练集： 1.0\n",
      "linear线性核函数-测试集： 0.9555555555555556\n",
      "预测结果：\n",
      " ['Iris-virginica' 'Iris-virginica' 'Iris-virginica' 'Iris-setosa'\n",
      " 'Iris-virginica' 'Iris-virginica' 'Iris-setosa' 'Iris-versicolor'\n",
      " 'Iris-virginica' 'Iris-versicolor' 'Iris-setosa' 'Iris-setosa'\n",
      " 'Iris-versicolor' 'Iris-setosa' 'Iris-setosa' 'Iris-versicolor'\n",
      " 'Iris-virginica' 'Iris-setosa' 'Iris-virginica' 'Iris-versicolor'\n",
      " 'Iris-virginica' 'Iris-setosa' 'Iris-virginica' 'Iris-setosa'\n",
      " 'Iris-setosa' 'Iris-setosa' 'Iris-setosa' 'Iris-virginica'\n",
      " 'Iris-versicolor' 'Iris-setosa' 'Iris-setosa' 'Iris-virginica'\n",
      " 'Iris-virginica' 'Iris-virginica' 'Iris-versicolor' 'Iris-versicolor'\n",
      " 'Iris-virginica' 'Iris-virginica' 'Iris-setosa' 'Iris-setosa'\n",
      " 'Iris-virginica' 'Iris-versicolor' 'Iris-setosa' 'Iris-versicolor'\n",
      " 'Iris-versicolor' 'Iris-setosa' 'Iris-virginica' 'Iris-virginica'\n",
      " 'Iris-versicolor' 'Iris-versicolor' 'Iris-setosa' 'Iris-versicolor'\n",
      " 'Iris-versicolor' 'Iris-virginica' 'Iris-virginica' 'Iris-setosa'\n",
      " 'Iris-virginica' 'Iris-versicolor' 'Iris-setosa' 'Iris-setosa'\n",
      " 'Iris-setosa' 'Iris-setosa' 'Iris-virginica' 'Iris-versicolor'\n",
      " 'Iris-virginica' 'Iris-virginica' 'Iris-virginica' 'Iris-versicolor'\n",
      " 'Iris-setosa' 'Iris-virginica' 'Iris-versicolor' 'Iris-versicolor'\n",
      " 'Iris-virginica' 'Iris-setosa' 'Iris-virginica' 'Iris-versicolor'\n",
      " 'Iris-virginica' 'Iris-versicolor' 'Iris-versicolor' 'Iris-setosa'\n",
      " 'Iris-virginica' 'Iris-versicolor' 'Iris-setosa' 'Iris-versicolor'\n",
      " 'Iris-setosa' 'Iris-versicolor' 'Iris-setosa' 'Iris-versicolor'\n",
      " 'Iris-virginica' 'Iris-virginica' 'Iris-versicolor' 'Iris-versicolor'\n",
      " 'Iris-setosa' 'Iris-virginica' 'Iris-versicolor' 'Iris-versicolor'\n",
      " 'Iris-setosa' 'Iris-virginica' 'Iris-versicolor' 'Iris-versicolor'\n",
      " 'Iris-setosa' 'Iris-versicolor' 'Iris-setosa' 'Iris-virginica'\n",
      " 'Iris-setosa']\n",
      "标签值：\n",
      " ['Iris-virginica', 'Iris-virginica', 'Iris-virginica', 'Iris-setosa', 'Iris-virginica', 'Iris-virginica', 'Iris-setosa', 'Iris-versicolor', 'Iris-virginica', 'Iris-versicolor', 'Iris-setosa', 'Iris-setosa', 'Iris-versicolor', 'Iris-setosa', 'Iris-setosa', 'Iris-versicolor', 'Iris-virginica', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-virginica', 'Iris-setosa', 'Iris-virginica', 'Iris-setosa', 'Iris-setosa', 'Iris-setosa', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-setosa', 'Iris-setosa', 'Iris-virginica', 'Iris-virginica', 'Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-virginica', 'Iris-virginica', 'Iris-setosa', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-setosa', 'Iris-versicolor', 'Iris-versicolor', 'Iris-setosa', 'Iris-virginica', 'Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-setosa', 'Iris-versicolor', 'Iris-versicolor', 'Iris-virginica', 'Iris-virginica', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-setosa', 'Iris-setosa', 'Iris-setosa', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-virginica', 'Iris-virginica', 'Iris-virginica', 'Iris-versicolor', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-virginica', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-setosa', 'Iris-versicolor', 'Iris-setosa', 'Iris-versicolor', 'Iris-setosa', 'Iris-versicolor', 'Iris-virginica', 'Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-setosa', 'Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-setosa', 'Iris-versicolor', 'Iris-setosa', 'Iris-virginica', 'Iris-setosa']\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn import svm\n",
    "\n",
    "data_Set = []\n",
    "data_Set_x = []\n",
    "data_Set_y = []\n",
    "\n",
    "\n",
    "#打开数据集,字符串前加r表示raw string,防止路径字符串中存在的反斜杠带来的转义\n",
    "data_file = open(r\"./datasets/Data_SVM.csv\")\n",
    "\n",
    "\n",
    "#拆分数据集，取前四列为x，第五列为y\n",
    "for line in data_file.readlines():\n",
    "    lineArr = line.strip().split(',')\n",
    "#     print(lineArr)\n",
    "    data_Set.append(lineArr)\n",
    "    data_Set_x.append(lineArr[0:4])\n",
    "    data_Set_y.append(lineArr[4])\n",
    "\n",
    "    \n",
    "#按照7:3的比例分割训练集和测试集\n",
    "data_train_x,data_test_x = train_test_split(data_Set_x,test_size = 0.3,random_state = 55)\n",
    "data_train_y,data_test_y = train_test_split(data_Set_y,test_size = 0.3,random_state = 55)\n",
    "\n",
    "\n",
    "\"\"\"\n",
    "分别利用四种核函数进行训练，这些核函数都可以设置参数，例如\n",
    "decision_function_shape='ovr'时，为one v rest，即一个类别与其他类别进行划分，\n",
    "decision_function_shape='ovo'时，为one v one，即将类别两两之间进行划分，用二分类的方法模拟多分类的结果。\n",
    "不设置的话会使用默认参数设置\n",
    "\"\"\"\n",
    "# 使用linear线性核函数，C越大分类效果越好，但是可能过拟合\n",
    "clf1 = svm.SVC(C=1,\n",
    "               kernel='linear',                 #  核函数\n",
    "               decision_function_shape='ovr'    # \n",
    "              ).fit(data_train_x,data_train_y)\n",
    "\n",
    "\n",
    "\n",
    "# # 使用rbf径向基核函数,gamma值越小，分类界面越连续；gamma值越大，分类界面越“散”，分类效果越好，但有可能会过拟合。\n",
    "# clf2 = svm.SVC(C=1, kernel='rbf', gamma=1).fit(data_train_x,data_train_y)\n",
    "\n",
    "# # 使用poly多项式核函数\n",
    "# clf3 = svm.SVC(kernel='poly').fit(data_train_x,data_train_y)\n",
    "\n",
    "# # 使用sigmoid神经元激活核函数\n",
    "# clf4 = svm.SVC(kernel='sigmoid').fit(data_train_x,data_train_y)\n",
    "\n",
    "\n",
    "# 打印使用不同核函数进行分类时，训练集和测试集分类的准确率\n",
    "print(\"linear线性核函数-训练集：\",clf1.score(data_train_x, data_train_y))\n",
    "print(\"linear线性核函数-测试集：\",clf1.score(data_test_x, data_test_y))\n",
    "\n",
    "# print(\"rbf径向基核函数-训练集：\",clf2.score(data_train_x, data_train_y))\n",
    "# print(\"rbf径向基函数-测试集：\",clf2.score(data_test_x, data_test_y))\n",
    "\n",
    "# print(\"poly多项式核函数-训练集：\",clf3.score(data_train_x, data_train_y))\n",
    "# print(\"poly多项式核函数-测试集：\",clf3.score(data_test_x, data_test_y))\n",
    "\n",
    "# print(\"sigmoid神经元激活核函数-训练集：\",clf4.score(data_train_x, data_train_y))\n",
    "# print(\"sigmoid神经元激活核函数-测试集：\",clf4.score(data_test_x, data_test_y))\n",
    "\n",
    "# #使用decision_function()可以查看决策函数\n",
    "# print(clf1.decision_function(data_train_x))\n",
    "\n",
    "\n",
    "#使用predict()可以查看预测结果\n",
    "predict = clf1.predict(data_train_x)\n",
    "print(\"预测结果：\\n\", predict)\n",
    "\n",
    "print(\"标签值：\\n\", data_train_y)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
